Vehicle components send and receive data over vehicle bus protocols such as controller area network (CAN). To communicate, the vehicle components are designed to send handcrafted data exchanges over the CAN bus. CAN message lists are effectively static, so a system operator or implementer is unable to change inputs or outputs without changing software components across multiple controllers. Network bandwidth constraints over the CAN bus prevent modules from publishing excess data, which therefore limits futureproofing of designs. Components performing real-time control tend to be designed with limited headroom for new features or functions. Such systems are often built around a basic task scheduler, not a memory-managed operating system.